package bookStore.service.business;

import java.util.List;

import bookStore.po.Book;
import bookStore.service.BaseService;
import bookStore.vo.BookVo;
import bookStore.vo.BookWithAuthorName;
import bookStore.vo.BookWithPicture;

public interface BookService extends BaseService<Book>{
	/**
	 * 根据图书id获取BookVo，用于查看单个图书信息
	 * @param bookId
	 * @return
	 */
	BookVo getBookVoByBookId(int bookId);
	/**
	 *  首页 根据添加顺序倒叙获得书籍列表 用于显示最新图书
	 * @param offset
	 * @param pageSize
	 * @return
	 */
	List<BookWithPicture> queryBookWithPictureByIdDesc(int offset,int pageSize);
	/**
	 * 作者页面 根据作者获得图书列表 倒序 用于显示该作者最新图书
	 * @param authorId
	 * @param offset
	 * @param pageSize
	 * @return
	 */
	List<BookWithPicture> queryBookWithPictureByAuthor(int authorId,int offset,int pageSize);
	/**
	 * 首页 根据图书评分获取图书列表，倒序 用于显示高分推荐
	 * @param offset
	 * @param pageSize
	 * @return
	 */
	List<BookWithPicture> queryBookWithPictureByScore(int offset,int pageSize);
	/**
	 * 作者页面 显示该作者所有图书 按分数排列 用于显示该作者高分推荐
	 * @param authorId
	 * @param offset
	 * @param pageSize
	 * @return
	 */
	List<BookWithPicture> queryBookWithPictureByScoreAndAuthor(int authorId,int offset,int pageSize);
	/**
	 * 
	 * @param authorName
	 * @param bookTitle
	 * @param offset
	 * @param pageSize
	 * @return
	 */
	public List<BookWithPicture> queryBookWithPictureByAuthorOrTitle(String authorOrTitle, int offset,int pageSize);
	/**
	 * 
	 * @param authorOrTitle
	 * @return
	 */
	public long CountBookWithPictureByAuthorOrTitle(String authorOrTitle);
	
	public List<BookVo> queryAllBookVo(int offset,int pageSize);
	BookWithAuthorName getBookWithAuthorName(int bookId1);
	
}
